---
id: 65c9ddd336596e30a4266a50
title: Крок 31
challengeType: 20
dashedName: step-31
---

# --description--

Видаліть `pass` в межах методу `__str__` та поверніть результат виклику функції `str()` з аргументом `self.key`.  Це атрибут об’єкта поточного вузла, який зберігає значення, пов’язане з вузлом.

# --hints--

Видаліть ключове слово `pass` з методу `__str__`.

```js
({
  test: () => {
    assert.isFalse(
      runPython(
        `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()`
      )
    );
  },
});

```

Поверніть значення рядка `self.key` з методу `__str__`.

```js
({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) })
```


# --seed--

## --seed-contents--

```py

class TreeNode:

    def __init__(self, key):
        self.key = key
        self.left = None
        self.right = None

--fcc-editable-region--
    def __str__(self):
        pass

--fcc-editable-region--

class BinarySearchTree:

    def __init__(self):
        self.root = None

    def _insert(self, node, key):
        if node is None:
            return TreeNode(key)

        if key < node.key:
            node.left = self._insert(node.left, key)
        elif key > node.key:

            node.right = self._insert(node.right, key)
        return node

    def insert(self, key):
        self.root = self._insert(self.root, key)

    def _search(self, node, key):
        if node is None or node.key == key:
            return node
        if key < node.key:
            return self._search(node.left, key)
        return self._search(node.right, key)

    def search(self, key):
        return self._search(self.root, key)

bst = BinarySearchTree()

nodes = [50, 30, 20, 40, 70, 60, 80]

for node in nodes:
    bst.insert(node)

print('Search for 80:', bst.search(80))

```
